﻿using System;
using System.Collections;
using System.Data.SqlClient;

namespace Ecopsy.DataTier
{
    /// <summary>
    /// Интерфейс серилизации для бизнес объектов
    /// Правила: серилизуюся элементарные типы и объекты поддерживающие ISerializableItem         
    /// </summary>
    public interface ISerializableItem
    {
        System.Xml.Schema.XmlSchema GetSchema();
        void ReadXml(System.Xml.XmlNode Node);        
        void WriteXml(System.Xml.XmlWriter writer, string ObjectName, Boolean Full);
        void WriteShortXml(System.Xml.XmlWriter writer, string ObjectName);
        void WriteReportXml(System.Xml.XmlWriter writer, string ObjectName);
        string ToXml(bool Full);

        //ArrayList GetNonSerializablePropPref();

    }

    /// <summary>
    /// Интерфейс бизнес объекта
    /// </summary>
    public interface IEntity : ISerializableItem
    {
        void Save();
        void Load();

        /// <summary>
        /// Пометить объект как удаленный. 
        /// </summary>
        void DestroyMySelf();

    }

   
     public interface ISqlSignature 
    {
        String SaveProcedure
        {
            get;
        }
        String DeleteProcedure
        {
            get;
        }
        String LoadProcedure
        {
            get;
        }
    }

     public interface ISqlSignatureExt : ISqlSignature
     {
         SqlCommand GetCommand(string SqlCommand);
     }

   
    /// <summary>
    /// Состояние в файл
    /// </summary>
     public interface IFileSignature : IEntity
    {
        string FileName { get; }
        string Folder { get; }
    }


}
